/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package globaltradutor;

import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;

/**
 *
 * @author Milton
 */
public class Interface extends javax.swing.JFrame {

    /**
     * Creates new form Interface
     */
    public Interface() {
        initComponents();
        this.setResizable(false);
        Idioma_entrada.setEnabled(false);
        Idioma_saida.setEnabled(false);
        Botao_traduzir.setEnabled(false);
        Texto_saida.setEditable(false);
 
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        Texto_saida = new javax.swing.JTextArea();
        Idioma_entrada = new javax.swing.JComboBox();
        Idioma_saida = new javax.swing.JComboBox();
        Botao_traduzir = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        Texto_entrada = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Global Tradutor");

        Texto_saida.setColumns(20);
        Texto_saida.setRows(5);
        jScrollPane1.setViewportView(Texto_saida);

        Idioma_entrada.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Idioma Entrada", "Alemão", "Arabe", "Bulgaro", "Chinês Simplificado", "Chinês Tradicional", "Coreano", "Dinamarquês", "Eslovaco", "Esloveno", "Espanho", "Estoniano", "Finlandês", "Francês", "Grego", "Haitiano", "Hebraico", "Holandês", "Húngaro", "Indonésio", "Inglês", "Italiano", "Japonês", "Letão", "Norueguês", "Polonês", "Português", "Romeno", "Russo", "Sueco", "Tailandês", "Tcheco", "Turco", "Ucraniano", "Vietnamita" }));
        Idioma_entrada.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                Idioma_entradaItemStateChanged(evt);
            }
        });

        Idioma_saida.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Idioma Saída", "Alemão", "Arabe", "Bulgaro", "Chinês Simplificado", "Chinês Tradicional", "Coreano", "Dinamarquês", "Eslovaco", "Esloveno", "Espanho", "Estoniano", "Finlandês", "Francês", "Grego", "Haitiano", "Hebraico", "Holandês", "Húngaro", "Indonésio", "Inglês", "Italiano", "Japonês", "Letão", "Norueguês", "Polonês", "Português", "Romeno", "Russo", "Sueco", "Tailandês", "Tcheco", "Turco", "Ucraniano", "Vietnamita" }));
        Idioma_saida.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                Idioma_saidaItemStateChanged(evt);
            }
        });

        Botao_traduzir.setText("Traduzir");
        Botao_traduzir.setToolTipText("");
        Botao_traduzir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Botao_traduzirActionPerformed(evt);
            }
        });

        Texto_entrada.setColumns(20);
        Texto_entrada.setRows(5);
        Texto_entrada.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                Texto_entradaKeyReleased(evt);
            }
        });
        jScrollPane2.setViewportView(Texto_entrada);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 257, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(33, 33, 33)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(Idioma_entrada, 0, 197, Short.MAX_VALUE)
                    .addComponent(Idioma_saida, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(30, 30, 30))
            .addGroup(layout.createSequentialGroup()
                .addGap(83, 83, 83)
                .addComponent(Botao_traduzir, javax.swing.GroupLayout.PREFERRED_SIZE, 620, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(29, 29, 29)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(9, 9, 9)
                        .addComponent(Idioma_entrada, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(Idioma_saida, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane2))
                .addGap(18, 18, 18)
                .addComponent(Botao_traduzir, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(36, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void Idioma_entradaItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_Idioma_entradaItemStateChanged
       
        if(Idioma_entrada.getSelectedIndex()==0){
            
            Idioma_saida.setEnabled(false);
            Botao_traduzir.setEnabled(false);            
        }
        else{
            Idioma_saida.setEnabled(true);
        }
    }//GEN-LAST:event_Idioma_entradaItemStateChanged

    private void Idioma_saidaItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_Idioma_saidaItemStateChanged

        if(Idioma_saida.getSelectedIndex()==0){
            Botao_traduzir.setEnabled(false);
        }
        else{
            Botao_traduzir.setEnabled(true);
        }
    }//GEN-LAST:event_Idioma_saidaItemStateChanged

    private void Botao_traduzirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Botao_traduzirActionPerformed
       Dados d = new Dados();
       
        Translate.setClientId("gtradutor");
        Translate.setClientSecret("YHuLn0giULc8HDCC5jxumyw2ioYhdU3yzLxVgSoCzEg=");
        
        String idioma_entrada = Idioma_entrada.getSelectedItem().toString();
        Language entrada = Devolve_Idioma(idioma_entrada);
        
        String idioma_saida = Idioma_saida.getSelectedItem().toString();
        Language saida = Devolve_Idioma(idioma_saida);
        
        String frase = Texto_entrada.getText();
        
        d.Texto_entrada=frase; //mandar frase para a class dados
        d.idioma_entrada=idioma_entrada; //mandar idioma para class dados
        d.idioma_saida=idioma_saida; //mandar idioma para class dados
        
                
        String Translation;
        try {
            Translation = Translate.execute(frase,entrada,saida);
      
            Texto_saida.setText(Translation);
            System.out.println("trad: "+Translation);
            
            d.Texto_saida=Translation; //manda traducao para class dados
            
        } catch (Exception ex) {
            Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }//GEN-LAST:event_Botao_traduzirActionPerformed

    private void Texto_entradaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_Texto_entradaKeyReleased
          
       int Total_palavras = Texto_entrada.getText().length()- Texto_entrada.getText().replaceAll(" ", "").length();
       if (Total_palavras>=10){
           JOptionPane.showMessageDialog(this,"O número máximo de palavras introduzidas foi excedido!","ERRO",JOptionPane.ERROR_MESSAGE);
           return;
       }
        if(Texto_entrada.getText().equals("") && Texto_entrada.getText().length()==0 || Total_palavras>=10){

            Idioma_entrada.setEnabled(false);
            Idioma_entrada.setSelectedIndex(0);

            Idioma_saida.setSelectedIndex(0);
            Idioma_saida.setEnabled(false);

            Botao_traduzir.setEnabled(false);

        }
        else
        {
            Idioma_entrada.setEnabled(true);
        }
    }//GEN-LAST:event_Texto_entradaKeyReleased

    public Language Devolve_Idioma(String idioma){
      
       Language idioma_final = null;
        
        if(idioma.equals("Alemão"))
            idioma_final = Language.GERMAN;
        
        if(idioma.equals("Arabe"))
             idioma_final = Language.ARABIC;
        
        if(idioma.equals("Bulgaro"))
            idioma_final = Language.BULGARIAN;
        
        if(idioma.equals("Chinês Simplificado"))
            idioma_final =Language.CHINESE_SIMPLIFIED;
        
        if(idioma.equals("Chinês Tradicional"))
            idioma_final = Language.CHINESE_TRADITIONAL;
        
        if(idioma.equals("Coreano"))
            idioma_final =Language.KOREAN;
        
        if(idioma.equals("Dinamarquês"))
            idioma_final =Language.DANISH;
        
        if(idioma.equals("Eslovaco"))
            idioma_final =Language.SLOVAK;
        
        if(idioma.equals("Esloveno"))
            idioma_final =Language.SLOVENIAN;
        
        if(idioma.equals("Espanhol"))
            idioma_final = Language.SPANISH;
        
        if(idioma.equals("Estoniano"))
            idioma_final =Language.ESTONIAN;
        
        if(idioma.equals("Finlandês"))
            idioma_final = Language.FINNISH;
        
        if(idioma.equals("Francês"))
            idioma_final =Language.FRENCH;
        
        if(idioma.equals("Grego"))
            idioma_final = Language.GREEK;
        
        if(idioma.equals("Haitiano"))
            idioma_final = Language.HAITIAN_CREOLE;
        
        if(idioma.equals("Hebraico"))
            idioma_final = Language.HEBREW;
        
        if(idioma.equals("Holandês"))
            idioma_final =Language.DUTCH;
        
        if(idioma.equals("Húngaro"))
            idioma_final = Language.HUNGARIAN;
        
        if(idioma.equals("Indonésio"))
            idioma_final = Language.INDONESIAN;
        
        if(idioma.equals("Inglês"))
            idioma_final = Language.ENGLISH;
        
        if(idioma.equals("Italiano"))
            idioma_final = Language.ITALIAN;
        
        if(idioma.equals("Japonês"))
            idioma_final = Language.JAPANESE;
        
        if(idioma.equals("Letão"))
            idioma_final = Language.LATVIAN;
        
        if(idioma.equals("Norueguês"))
            idioma_final = Language.NORWEGIAN;
        
        if(idioma.equals("Polonês"))
            idioma_final =Language.POLISH;
        
        if(idioma.equals("Português"))
            idioma_final =Language.PORTUGUESE;
        
        if(idioma.equals("Romeno"))
            idioma_final = Language.ROMANIAN;
        
        if(idioma.equals("Russo"))
            idioma_final = Language.RUSSIAN;
        
        if(idioma.equals("Sueco"))
            idioma_final = Language.SWEDISH;
        
        if(idioma.equals("Tailandês"))
            idioma_final = Language.THAI;
        
        if(idioma.equals("Tcheco"))
            idioma_final = Language.CZECH;
        
        if(idioma.equals("Turco"))
            idioma_final = Language.TURKISH;
        
         if(idioma.equals("Ucraniano"))
            idioma_final = Language.UKRAINIAN;
        
        if(idioma.equals("Vietnamita"))
            idioma_final = Language.VIETNAMESE;
       
        
        
        return idioma_final;
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Interface.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Interface().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton Botao_traduzir;
    private javax.swing.JComboBox Idioma_entrada;
    private javax.swing.JComboBox Idioma_saida;
    private javax.swing.JTextArea Texto_entrada;
    private javax.swing.JTextArea Texto_saida;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    // End of variables declaration//GEN-END:variables
}
